package com.merry.transaction;

import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;

public class TestTransaction {

    private DataSourceTransactionManager transactionManager;

    //编程式事务。
    public void transfer(){
        // 默认的事务配置
        DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
        //使用事务管理器进行事务管理，
        // 在这里可以看到，无论是编程式事务，还是声明式事务，都需要使用 transactionManager 来创建，
        TransactionStatus transaction = transactionManager.getTransaction(definition);

        try {
            //do some sql。

        }catch (Exception e){
            //回滚
            transactionManager.rollback(transaction);
        }
        //提交
        transactionManager.commit(transaction);
    }
}
